﻿/// <reference path="Alert.js" />
/// <reference path="libraries/jquery-1.4.1.js" />
var _util = null;
function SetDate(date) {
    $("#data").val(date);
}

function Upload(panel, agenda) {
    $('div[data-spy="scroll"]').block({ message: 'aguarde <img src="' + eS.UrlPadrao + 'recursos/i/loading.gif" />' });
    $.ajax({
        url: eS.UrlPadrao + "Views/Cadastros/Agenda.aspx/Listar",
        type: "post",
        data: "{ data: '" + agenda.data + "', horaInicio: '" + agenda.horaInicio + "', paciente: '" + agenda.paciente + "', especialidade: " + agenda.especialidade + ", medico: " + agenda.medico + " }",
        dataType: "json",
        contentType: 'application/json; charset=utf-8',
        success: function (e) {
            //$('a[href="' + panel + '"]').html("");
            $(".tab-pane").html("");
            if (e.d) {
                var table = "<table class='table table-hover table-striped'>";
                var thread = "<thead><tr><th>Entrada</th><th>Saída</th><th>Paciente</th><th>Médico</th><th>Especialidade</th><th>#</th></tr></thead>";
                var tbody = "";
                for (var i in e.d) {
                    var horaInicio = (e.d[i].HoraInicio.Hours > 9 ? e.d[i].HoraInicio.Hours : "0" + e.d[i].HoraInicio.Hours.toString()) + ":" + (e.d[i].HoraInicio.Minutes > 9 ? e.d[i].HoraInicio.Minutes : "0" + e.d[i].HoraInicio.Minutes.toString());
                    var horaFim = (e.d[i].HoraFim.Hours > 9 ? e.d[i].HoraFim.Hours : "0" + e.d[i].HoraFim.Hours.toString()) + ":" + (e.d[i].HoraFim.Minutes > 9 ? e.d[i].HoraFim.Minutes : "0" + e.d[i].HoraFim.Minutes.toString());
                    var status = "";
                    if (e.d[i].Avaliado == true && e.d[i].Aprovado == true)
                        status = "Confirmado";
                    else if ((e.d[i].Avaliado && e.d[i].Aprovado == false) || e.d[i].Expirado == true)
                        status = "Não confirmado";
                    else
                        status = "<input type='button' value='confirmar' class='btn' href='javascript:Aprovar();' id='" + e.d[i].AgendaId.toString() +
                                "aprovaItem' item='" + e.d[i].AgendaId.toString() +
                                "' dataValue='" + agenda.data +
                                "' horaInicio='" + horaInicio +
                                "' horaFim='" + horaFim +
                                "' onclick='AprovarItem({ AgendaId: " + e.d[i].AgendaId.toString() +
                                ", data: \"" + agenda.data +
                                "\", horaInicio:\"" + horaInicio +
                                "\", horaFim:\"" + horaFim +
                                "\" }, \"#" + e.d[i].AgendaId.toString() +
                                "aprovaItem\")'/>";

                    tbody += "<tr><td>" + horaInicio +
                            "<td>" + horaFim +
                            "</td><td>" + e.d[i].Paciente.Nome +
                            "</td><td>" + e.d[i].Medico.Pessoa.Nome +
                            "</td><td>" + e.d[i].Medico.EspecialidadeMedico.Descricao +
                            "</td><td>" + status + "</td></tr>";
                    //$('#myTable tr:last').after(tbody);
                }
                table += thread + tbody + "</table>";
                $(table).appendTo(panel);
                $('div[data-spy="scroll"]').unblock();
            }
            $('a[href="' + panel + '"]').tab("show");
        },
        error: function (e) {
            $(panel).html("");
            $(".tab-pane").html("");
            $('a[href="' + panel + '"]').tab("show");
        }
    });
}

function Aprovar(objeto, link) {
    CallAjax("Aprovar", "{agendaId:" + objeto.agendaId + ", dataInicial:'" + objeto.dataInicial + "', horaEntrada:'" + objeto.horaEntrada + "', horaSaida:'" + objeto.horaSaida + "'}", link);
}

function Descartar(agendaId, link) {
    CallAjax("Reprovar", "{ agendaId:" + agendaId + "}", link);
}

function CallAjax(method, parans, link) {
    var alerta = new Alert();
    alerta.Name = "AgendaAlerta";
    alerta.Name = "erroGeral";
    $('div[data-spy="scroll"]').block({ message: 'aguarde <img src="' + eS.UrlPadrao + 'recursos/i/loading.gif" />' });
    $.ajax({
        url: eS.UrlPadrao + 'Views/Consulta/Agenda.aspx/' + method,
        type: 'post',
        data: parans,
        dataType: 'json',
        contentType: 'application/json; charset=utf-8',
        success: function (e) {
            var msg = e.d[0] == "*" ? e.d.substr(1, e.d.length) : e.d;
            alerta.AddMessage(msg);
            alerta.Type = AlertType.Success;
            if (e.d[0] == "*") {
                if (method.toLowerCase() == "aprovar")
                    $(link).parent().html("<span>confirmado</span>");
                else {
                    $(link).parent().html("<span>não confirmado</span>");
                }
                $("div[id*='__aprovar']").dialog('close');
                $("input[id*='AgendamentoId']").val('');
                $("input[id*='dataInicio']").val('');
                $("input[id*='horaInicio']").val('');
                $("input[id*='horaFim']").val('');
            } else {
                alerta.Type = AlertType.Error;
            }
            alerta.Show();
        },
        error: function (e) {
            alerta.Type = AlertType.Error;
            alerta.AddMessage(e.d);
            alerta.Show();
        },
        complete: function () {
            $('div[data-spy="scroll"]').unblock();
        }
    });
}
$(function () {
    _util = util();

    $("select[id*='EspecialidadeId']").change(function (e) {
        val = $(this).children("option:selected").val();
        $.ajax({
            url: eS.UrlPadrao + "Views/Cadastros/Agendamento.aspx/GetMedicos",
            type: "post",
            data: "{ especialidadeId:" + val + "}",
            dataType: "json",
            contentType: 'application/json; charset=utf-8',
            success: function (e) {
                try {
                    if (!e.d || e.d == [] || e.d.lenght == 0)
                        return;
                    $("select[id*='MedicoId']").children("option").remove();
                    $("select[id*='MedicoId']")[0].options.add(new Option("Selecione", "0"));
                    for (var i in e.d) {
                        var item = e.d[i];
                        $("select[id*='MedicoId']")[0].options.add(new Option(item.Pessoa.Nome, item.MedicoId));
                    }
                } catch (e) {
                    alert(e);
                }
            },
            error: function (e) {
                if (e.responseText)
                    alert(e.responseText);
                else
                    alert(e);
            }
        });
    });

    $('#tabMenu a').click(function (e) {
        e.preventDefault();
        $(this).tab('show');
        $($(this).attr("href")).html("");

        var agenda = {
            data: "",
            horaInicio: "",
            paciente: "",
            especialidade: 0,
            medico: 0
        };
        agenda.data = $("input[id$='data']").val();
        agenda.horaInicio = $(this).attr("hora") || "*";
        agenda.paciente = $("input[id$='Paciente']").val();
        agenda.especialidade = $("select[id*='EspecialidadeId'] option:selected").val();
        agenda.medico = $("select[id*='MedicoId'] option:selected").val();
        Upload($(this).attr("href"), agenda);
    })

    $("input[id$='buscar']").click(function (e) {
        e.preventDefault();
        Upload("#painel", {
            data: $("#data").val(),
            horaInicio: "",
            paciente: $("input[id$='Paciente']").val(),
            especialidade: $("select[id*='EspecialidadeId'] option:selected").val(),
            medico: $("select[id*='MedicoId'] option:selected").val()
        });
        $("#painel").tab('show');
        return false;
    });

    setTimeout(function () {
        Upload("#painel", {
            data: $("#data").val(),
            horaInicio: "",
            paciente: $("input[id$='Paciente']").val(),
            especialidade: $("select[id*='EspecialidadeId'] option:selected").val(),
            medico: $("select[id*='MedicoId'] option:selected").val()
        });
    }, 100);
});
function AprovarItem(agenda, id) {
    var horaInicio = agenda.horaInicio;
    var horaFim = agenda.horaFim;
    $("input[id*='dataInicio']").val(agenda.data);
    $("input[id*='horaInicio']").val(horaInicio);
    $("input[id*='horaFim']").val(horaFim);
    $("input[id*='AgendamentoId']").val(agenda.AgendaId.toString());
    var link = $(id);
    var dialog = $("div[id*='__aprovar']").dialog({
        modal: true,
        width: 600,
        height: 300,
        buttons: {
            "confirmar": function () {
                var alerta = new Alert();
                alerta.Name = "erroGeral";
                alerta.Type = AlertType.Error;
                var agendamentoId = $("input[id*='AgendamentoId']").val();
                var dataInicial = $("input[id*='dataInicio']").val();
                var horaInicial = $("input[id*='horaInicio']").val();
                var horaFinal = $("input[id*='horaFim']").val();
                var erros = "";
                if (agendamentoId == "")
                    alerta.AddMessage("Código de agendamento inválido");
                if (!_util.ValidarData(dataInicial))
                    alerta.AddMessage("Data inválida");
                if (!_util.ValidarHora(horaInicial))
                    alerta.AddMessage("Hora inicial inválida");
                if (!_util.ValidarHora(horaFinal))
                    alerta.AddMessage("Hora final inválida");
                if (!alerta.HasMessage())
                    Aprovar({ agendaId: agendamentoId, dataInicial: dataInicial, horaEntrada: horaInicial, horaSaida: horaFinal }, link);
                else {
                    alerta.Show();
                }
                $("div[id*='__aprovar']").dialog("close");
            },
            "descartar": function () {
                var agendamentoId = $("input[id*='AgendamentoId']").val();
                if (confirm("Deseja realmente descartar o agendamento")) {
                    Descartar(agendamentoId, link);
                }
                $("div[id*='__aprovar']").dialog("close");
            }
        },
        open: function (event, ui) {
            $(".ui-dialog-buttonset").find("button").attr("class", "btn btn-primary");
        }
    });
    //var buttons = dialog.dialog("option", "buttons");
    return false;
}